System and method for simulated aircraft control through desired direction of flight

ABSTRACT

An aircraft control system for a user of a simulated aircraft. The system includes input devices for controlling the simulated aircraft, a video display having three-dimensional graphics, modeling software for determining position and orientation information based on desired direction of flight obtained through the input devices. User controls desired direction of flight through the input devices, thus controlling aircraft. The aircraft control system may be embodied as a flight game.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to the U.S. Provisional PatentApplication No. 61/613,513, filed Mar. 21, 2012, which is incorporatedherein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to aircraft control method, and,more particularly, to flight simulators.

2. Description of the Related Art

A flight simulator can be defined as a system that simulates theoperating conditions of an aircraft in an environment. The environmenttypically includes landscape, static objects, such as houses, bridges,trees, etc., and atmosphere. The environment may also include weatherconditions and atmospheric effects, such as clouds, rain, thunderstorm,snow, blizzard, etc.

Flight simulators provide a means to experience aircraft handling andbehavior in a variety of situations and environments. However, directcontrol over simulated aircraft can be challenging, especially when auser need to operate multiple input devices. But when the user controlsa desired direction of flight of the simulated aircraft, the user canoperate a simulated aircraft without a need to control multiple inputdevices just to align the aircraft with the desired direction.

Controlling desired direction of flight instead of controlling, forexample, ailerons, elevator and rudder, the user will be able totakeoff, land, fly traffic patterns, intercept other aircraft, etc.,without spending a long time learning how to align simulated aircraftwith the desired direction.

SUMMARY OF THE INVENTION

The objectives of the invention are satisfied by a combination thatincludes a control system of a simulated aircraft, comprising one or aplurality of simulated input devices for controlling the simulatedaircraft. For the example of a flight simulator, input devices mayinclude a keyboard and a computer mouse. The simulated aircraft controlsystem further includes a video display for presenting the user with aview of a simulated environment. The control system also includes amodeling means responsive to the desired direction of flight fordetermining position and orientation of the simulated aircraft. Thepresent invention can also be embodied as a flight simulator.

Additional features and advantages of the invention will be set forth inthe description that follows, and in part will be apparent from thedescription, or may be learned by practice of the invention. Theadvantages of the invention will be realized and attained by thestructure particularly pointed out in the written description and claimshereof as well as the appended drawings.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and areintended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE ATTACHED DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the invention and are incorporated in and constitute apart of this specification, illustrate embodiments of the invention andtogether with the description serve to explain the principles of theinvention.

In the drawings:

FIG. 1 is a block diagram of a preferred flight simulator of the presentinvention.

FIG. 2 is a flow diagram of a model process that forms a portion of theflight simulator shown in FIG. 1.

FIG. 3 is a diagram of the user's view when a simulated aircraft isaligned with a desired direction of flight.

FIG. 4 is a diagram of the user's view when a simulated aircraft is inthe process of aligning with a desired direction of flight.

FIG. 5 is a flow diagram of one preferred implementation of a portion ofprocess shown in FIG. 2.

FIG. 6 is a flow diagram of another preferred implementation of aportion of process shown in FIG. 2.

FIG. 7 is a flow diagram of yet another preferred implementation of aportion of process shown in FIG. 2.

FIG. 8 illustrates a schematic diagram of an exemplary computer orserver that can be used in the invention.

FIGS. 9-13 illustrate screenshots of an exemplary embodiment.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Reference will now be made in detail to the preferred embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings.

FIG. 1 shows one preferred embodiment of an aircraft control system 200of the present invention. The aircraft control system is operated by auser 201 (shown schematically), who desires to pilot a simulatedaircraft.

In FIG. 1, the user preferably operates a pointing input device 202,such as a computer mouse, a touch screen or a trackball. With suchdevices, accuracy is increased, compared to input devices like computerkeyboard, joysticks etc.

In the aircraft control system 200, the user 201 uses input devices 202of choice in the customary manner (i.e., as if working with a computer,rather than with a flight simulator). Then input from input devices 202is transferred to processor 204. The processor 204, in the preferredembodiment executes computer software, which is logically organized toinclude a model process 203.

The model process 203 receives digitized signals from the input devices202 and changes desired direction of flight according to the signals.Then, the model process 203 simulates an aircraft and displays thesimulated aircraft in a new position and orientation, as well as in asimulated environment, through a video display 205, which is thenobserved by the user 201.

FIG. 2 shows the model process 203 from FIG. 1. Model process 300 startsby collecting input from input devices 301. Then it calculates whatchanges should be done to desired direction of flight 302. After thatthe model process 300 calculates how simulated aircraft controls shouldbe adjusted to align with a desired direction of flight 303. Moredetailed implementations of process 303 are described in FIG. 5, FIG. 6and FIG. 7. Then the model process 300 applies the adjustments changesto simulated aircraft 304. Thereafter, the model process 300 simulatesthe aircraft 305. After that, the model process 300 displays theenvironment and a simulated aircraft 306.

FIG. 3 shows a user's view of a simulated aircraft 100 (such as shown ina browser-based display, or in a standalone application screen), flyingin a direction 107, which is aligned with a projected desired directionof flight 106. As the simulated aircraft 100 is aligned with the desireddirection of flight 106 (shown on the screen to the user by a graphicalelement, such as a small circle, or an “x”, or a cross-hairs, seescreenshots in FIGS. 9-13), its ailerons 101-102, its elevator 103-104and its rudder 105 are in such position so simulated aircraft 100 willkeep its direction 107 aligned with desired direction of flight 106.Also, the camera is set in such manner that the desired direction offlight 106 is in exact center of the user's view 108.

FIG. 4 shows a user's view of the simulated aircraft 100, flying in adirection 107, which is not aligned with the projected desired directionof flight 106. As the simulated aircraft 100 is not aligned with thedesired direction of flight 106, its ailerons 101-102, its elevator103-104 and its rudder 105 are oriented in such position that thesimulated aircraft 100 will align its flight direction 107 with thedesired direction of flight 106 after several simulation steps.

FIG. 5 shows a flow diagram with one preferred implementation of theprocess 303.

As its output, the process 303A outputs:

AileronControlValue—real number, in range [−1, 1], which representsaileron control axis.

ElevatorControlValue—real number, in range [−1, 1], which representselevator control axis.

RudderControlValue—real number, in range [−1, 1], which representsrudder control axis.

As its input, the process 303A receives:

Aircraft—physical state of user controlled aircraft, which describessuch parameters as:

Aircraft.AngularSpeed—three-dimensional vector, where x, y and zcomponent of this vector represents angular speed about longitudinal,vertical and lateral axes of aircraft.

Aircraft.AngularAcceleration—three-dimensional vector, which defines arate of change of Aircraft.AngularSpeed.

Aircraft.Orientation—representation of orientation of user-controlledaircraft, which can be defined as Euler angles: yaw, pitch, roll, asQuaternion, as 3×3 matrix, or in any other manner, suitable for thistask.

DesiredDirectionOfFlight—three-dimensional vector, which definesdirection with which user wants to align his aircraft.

AileronCoefficient—real number, which is chosen in such way that it'sproduct with lateral local desired direction of flight will produce suchvalue that if used as AileronControlValue then user controlled aircraftwill change its roll toward desired direction of flight.

ElevatorCoefficient—real number, which is chosen in such way that it'sproduct with vertical local desired direction of flight will producesuch value that if used as ElevatorControlValue then user controlledaircraft will change its pitch toward desired direction of flight.

RudderCoefficient—real number, which is chosen in such way that it'sproduct with lateral local desired direction of flight will produce suchvalue that if used as RudderControlValue then user controlled aircraftwill change its yaw toward desired direction of flight.

Process 303A starts with initialization of predicted angular speed withcurrent angular speed of simulated aircraft (step 401). After that, theprocess 303A initializes a predicted orientation with the currentorientation of the simulated aircraft (step 402). Then, the process 303Aenters a loop (step 403), where the exit criteria will be a number ofsteps. In that loop, the process 303A transforms desired direction offlight by a predicted orientation (step 404), which was initialized in402 and will be modified in step 409. Next three steps (405-407)calculate the desired aircraft control values based on transformeddesired direction of flight, which is the desired direction of flight inthe aircraft's coordinate system.

After that, the process 303A calculates the desired aileron controlvalue (step 405), based on assumption that the algorithm needs to getsuch a simulated aircraft orientation, so the transformed desireddirection of flight will be right on top or below the simulatedaircraft. Then, the process 303A calculates a desired elevator controlvalue (step 406), based on the assumption that it needs to get such asimulated aircraft orientation, that y-component of the transformeddesired direction of flight will become closer to zero. After that,process 303A calculates a desired rudder control value (step 407), basedon the assumption that it needs to get such a simulated aircraftorientation, that z-component of the transformed desired direction offlight will become closer to zero.

Then, the process 303A increments a predicted angular speed by thecurrent angular acceleration of the simulated aircraft (step 408). Thenthe process 303A calculates amount of angular speed that needs to beincremented to predicted orientation (step 409). After that the process303A increments predicted orientation with the predicted angular speed(step 410). Then the process 303A starts over until it runs a specifiednumber of times.

Exact values of simulated aircraft controls that should be applied arecalculated based on difference between the transformed desired directionof flight axis values and coefficients, which are calculated separately,as well as the number of steps the loop is run.

An example of process 303A in the form of pseudo-code can be as follows:

401: AngularSpeed = Aircraft.AngularSpeed 402: PredictedOrientation =Aircraft.Orientation 403: for (i = 0; i < NumberOfSteps; i = i + 1) 404: LocalDirection = transform(PredictedOrientation, DesiredDirectionOfFlight); 405:  AileronControlValue =LocalDirection.z * AileronCoefficient; 406:  ElevatorControlValue =LocalDirection.y * ElevatorCoefficient; 407:  RudderControlValue =LocalDirection.z * RudderCoefficient; 408:  AngularSpeed =AngularSpeed + Aircraft.AngularAcceleration 409:  AngularSpeedStep =AngularSpeed * AngularSpeedCoefficient 410:  PredictedOrientation = OrientationIncrement(PredictedOrientation, AngularSpeedStep) end for

Where “transform” is a function which takes orientation(PredictedOrientation in this case) as a first argument, direction(DesiredDirectionOfFlight in this case) as a second argument and returnsdirection in a local coordinate system of orientation. All threecoefficients (RudderCoefficient, AileronCoefficient,ElevatorCoefficient)—can be constants or depend on differences indesired and current orientation and/or on previous values.

Example: user changes desired direction of flight in such way that itpoints straight above simulated aircraft. Then LocalDirection will havepositive vertical component and ElevatorControlValue will be set topositive number, which represents pulling aircraft joystick. If the userchanges desired direction of flight in a way that it points below thesimulated aircraft, then ElevatorControlValue will be a negative number,which corresponds to pushing down on the aircraft's joystick. Absolutevalue of ElevatorControlValue will represent deflection from a neutralposition, so that when the simulated aircraft aligns with the desireddirection of flight, it will decrease deflection of joystick.

Example: user changes desired direction of flight in such way that itpoints to the left of simulated aircraft. Then LocalDirection will havepositive lateral component and AileronControlValue andRudderControlValue will be set to positive number, which representsmoving aircraft joystick to left and pressing left rudder pedal insimulated aircraft. In next simulation steps aircraft will change itsroll and LocalDirection will get positive vertical component, soElevatorControlValue will become a positive number and stick will bepulled too, aligning with desired direction of flight.

FIG. 6 shows a flow diagram with an exemplary implementation of theprocess 303. Process 303B starts with a loop 501, whose exit criteria isa number of steps. Then it simulates aircraft physics (step 502), whichcan range from full aerodynamic simulation to simple analytical models.

Inside loop 501, process 303B changes control values ofailerons/elevator/rudder (step 503) with or without any heuristics. Ifimplemented without heuristics, change can be made randomly, by applyingsome minor deflection from current aircraft control values, or from bestfound aircraft control values. Although heuristics is stronglyrecommended as it will reduce number of steps needed in loop 501 toprovide satisfactory results. Heuristics can be implemented by usingprojection of desired direction of flight on aircraft forward, up andleft directions and deflecting ailerons/elevator/rudder in appropriatedirection, applying coefficient to this projections, similar to steps404-407 in process 303A.

After that, it continues with loop 501, if its number of steps is notexceeded.

FIG. 7 is a flow diagram of yet another preferred implementation of aportion of process shown in FIG. 2. In step 701, the process 303B startswith initialization of aileron, elevator and rudder control multipliers,which will be used in step 708. In step 702, the process 303Binitializes best aileron, elevator and rudder control values withcurrent aircraft control values. In step 703: the process 303B starts aloop, whose exit criteria is a number of steps.

In step 704, inside the loop 703, the process 303B simulates aircraftseveral times with process 305 using current aircraft control values,thus simulating aircraft to some point in future if current controlvalues applied to it. In step 705, the process 303B compares how wellaircraft is aligned with the desired direction of flight by using avector dot product between simulated in step 704 aircraft direction offlight with desired direction of flight as heuristics, and if it isgreater than the best heuristic score, then continuing to step 706,otherwise going to step 708.

In step 706, the current score, found in step 705 is compared withthreshold score, and if the score is greater, then the perfect value hasbeen found, which will be used for aircraft control, otherwisecontinuing to step 707.

In step 707, current control values are saved as the best control valuesand the current score is saved as best score. In step 708, multipliers,initialized in step 701, are multiplied by 2 if aircraft, aftersimulation in step 704 has moved towards desired direction of flight,and divided by 2 if aircraft moved past desired direction of flightduring simulation in step 704. Then, new aircraft controls is set fornext simulation step, as sum of current control value and product oflocal desired direction of flight and corresponding multiplier:ControlValue=ControlValue+LocalDirectionForControl*ControlMultiplier.

The approach described herein permits controlling the aircraft bypointing to where the aircraft needs to go, rather than throughmanipulation of the aircraft's control surfaces. For example, the usercan look right quickly, and move the mouse cursor, and the aircraft willturn in that direction as fast as the aircraft's aerodynamics allow. Theconventional approach requires considerable understanding of aircraftflight behavior (which is often not as intuitive as many novices think),while the present approach permits far better orientation in space andfairly simple control scenarios.

Mouse-based aircraft control places more burden on the analyticalaspects of aircraft behavior. Unlike conventional approach, where theuser gives commands “rotate this control surface, pitch the aircraft 60degrees, and by rotating the rudder, gain altitude at 30 degrees, and,once reaching desired roll and pitch, return the control surfaces toneutral”, here, the user simply needs to point the mouse' cursor, andthe actions with the control surfaces will take place automatically. Theuser is freed from the complexities of thinking about control surfacemanipulation.

Although the preferred embodiments of the present invention shows thedesired direction of flight as absolute direction in a simulatedenvironment, this invention can also be used such that a desireddirection of flight will be used as a deflection from a simulatedaircraft direction. So, pointing the desired direction of flight to theleft of the aircraft will make the simulated aircraft fly to the left ofits current orientation, and so on.

Although the preferred embodiments of the present invention shows theaircraft from third person perspective, the present invention could alsobe applied to show perspective from inside of the simulated aircraft orany other position in or around the aircraft.

Although the preferred embodiments of the present invention have beenprincipally shown and described as relating to flight simulators, thepresent invention could also be used as an arcade flight game—the onlydifference is in flight simulation, but using physics as a “black box”,and the flight physics can be very simple or very detailed (including areal plane in case of 303A).

The screenshot in FIG. 9 shows the aircraft flying west, when itsdirection is aligned with desired direction of flight. Then, startingwith the screenshot in FIG. 10, the desired direction of flight changesto south-west. In FIG. 10, it is visible how aircraft rolls using itsailerons, which are deflected. In FIG. 11, the aircraft fully deflectsits elevator to align with the desired direction of flight. In FIG. 12,the aircraft direction is almost aligned and it starts to roll back tolevel flight. In FIG. 13, the aircraft is aligned with new desireddirection of flight.

Although the preferred embodiment of the present invention shows presentinvention as single user system, it can be implemented as multiple usersystem (some of which might be controlled through conventional joystickmeans, and others, through the mechanism described in this application).A multiple user system can be implemented by using, for each user, hisown separate aircraft control system, shown in FIG. 1 to control theuser's aircraft, while sending data to a server/game host machine, whichthen transfers position, orientation, velocity, and other data of eachof other users aircraft, to the players, so they can observe eachother's aircraft positions, orientations, velocities, etc.

Multiple user system can be implemented with different data, which userstransmit to the server/game host machine.

It can be implemented to send control values of aircraft, such asailerons, elevators, rudders, such that the server cannot distinguishbetween a user who controls his aircraft using the present invention, orby using other control schemes, such as joystick control, or keyboardcontrol.

The system can be implemented to send a desired direction of flight tothe server, thus reducing possibilities of modification of algorithm ofpresent invention on the client side. It can also be implemented to sendboth the desired direction of flight and control values of aircraft.

In any of implementations of multiple user system, it is preferred tocheck all data transmitted from users to host machine and to simulateeach user aircraft on the server to prevent users from usingmodifications of the control algorithms (for example, to prevent a userfrom giving his aircraft speed that a real aircraft cannot achieve inpractice, or from giving his aircraft maneuverability parameters thatare beyond the performance envelope of the real aircraft beingsimulated).

Although described implementations of process 303 have not addressedsituations when the aircraft cannot align with the desired direction offlight, it will be clear from the description that this approach canwork without making it a special case. These situations can occur whenaircraft does not have enough speed, or when it is physicallyconstrained in maneuverability, such as when the aircraft is stationedon the ground. In these situations, the process 303 will be able tooutput such control values so aircraft will try to get as close todesired direction of flight as practical.

EXAMPLE 1

Aircraft is standing on airfield, preparing to takeoff, when it is notcompletely aligned with runway. User points desired direction of flight,so it will be parallel to runway, deflecting it from aircraft forwarddirection. The Process 303 will deflect aircraft controls so that itwill align with runway. When aircraft engages its engines and gainsspeed, the aircraft will be able to align with the desired direction.

EXAMPLE 2

The aircraft is flying at stall speed and the desired direction offlight is aligned with its direction, which in this case is pointing upat 15 degrees. When the user moves desired direction of flight another 5degrees up (to 20 degrees above horizon), the process 303 will deflectaircraft controls in such way as to get as close to desired direction offlight as possible. It can result in a stall, and the user will need togain some speed to be able to align with such a desired direction offlight.

With reference to FIG. 8, an exemplary system for implementing theinvention includes a general purpose computing device in the form of apersonal computer or server 20 or the like, including a processing unit21, a system memory 22, and a system bus 23 that couples various systemcomponents including the system memory to the processing unit 21. Thesystem bus 23 may be any of several types of bus structures including amemory bus or memory controller, a peripheral bus, and a local bus usingany of a variety of bus architectures. The system memory includesread-only memory (ROM) 24 and random access memory (RAM) 25.

A basic input/output system 26 (BIOS), containing the basic routinesthat help to transfer information between elements within the personalcomputer 20, such as during start-up, is stored in ROM 24. The personalcomputer 20 may further include a hard disk drive interface 32 forreading from and writing to a hard disk 27, a magnetic disk drive 28 forreading from or writing to a removable magnetic disk 29, and an opticaldisk drive 30 for reading from or writing to a removable optical disk 31such as a CD-ROM, DVD-ROM or other optical media.

The hard disk drive 27, magnetic disk drive 28, and optical disk drive30 are connected to the system bus 23 by the hard disk drive interface32, a magnetic disk drive interface 33, and an optical drive interface34, respectively. The drives and their associated computer-readablemedia provide non-volatile storage of computer readable instructions,data structures, program modules and other data for the personalcomputer 20.

Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 29 and a removable optical disk 31, it shouldbe appreciated by those skilled in the art that other types of computerreadable media that can store data that is accessible by a computer,such as magnetic cassettes, flash memory cards, digital video disks,Bernoulli cartridges, random access memories (RAMs), read-only memories(ROMs) and the like may also be used in the exemplary operatingenvironment.

A number of program modules may be stored on the hard disk, magneticdisk 29, optical disk 31, ROM 24 or RAM 25, including an operatingsystem 35. The computer 20 includes a file system 36 associated with orincluded within the operating system 35, such as the WINDOWS NT™ FileSystem (NTFS), one or more application programs 37, other programmodules 38 and program data 39. A user may enter commands andinformation into the personal computer 20 through input devices such asa keyboard 40 and pointing device 42.

Other input devices (not shown) may include a microphone, joystick, gamepad, satellite dish, scanner or the like. These and other input devicesare often connected to the processing unit 21 through a serial portinterface 46 that is coupled to the system bus, but may be connected byother interfaces, such as a parallel port, game port or universal serialbus (USB). A monitor 47 or other type of display device is alsoconnected to the system bus 23 via an interface, such as a video adapter48.

In addition to the monitor 47, personal computers typically includeother peripheral output devices (not shown), such as speakers andprinters. A data storage device, such as a hard disk drive, a magnetictape, or other type of storage device is also connected to the systembus 23 via an interface, such as a host adapter via a connectioninterface, such as Integrated Drive Electronics (IDE), AdvancedTechnology Attachment (ATA), Ultra ATA, Small Computer System Interface(SCSI), SATA, Serial SCSI and the like.

The computer 20 may operate in a networked environment using logicalconnections to one or more remote computers 49. The remote computer (orcomputers) 49 may be another personal computer, a server, a router, anetwork PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative to thecomputer 20.

The computer 20 may further include a memory storage device 50. Thelogical connections include a local area network (LAN) 51 and a widearea network (WAN) 52. Such networking environments are commonplace inoffices, enterprise-wide computer networks, Intranets and the Internet.

When used in a LAN networking environment, the personal computer 20 isconnected to the local area network 51 through a network interface oradapter 53. When used in a WAN networking environment, the personalcomputer 20 typically includes a modem 54 or other means forestablishing communications over the wide area network 52, such as theInternet. The modem 54, which may be internal or external, is connectedto the system bus 23 via the serial port interface 46.

In a networked environment, program modules depicted relative to thepersonal computer 20, or portions thereof, may be stored in the remotememory storage device. It will be appreciated that the networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

In a networked environment, program modules depicted relative to thepersonal computer 20, or portions thereof, may be stored in the remotememory storage device. It will be appreciated that the networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

Having thus described a preferred embodiment, it should be apparent tothose skilled in the art that certain advantages of the described methodand apparatus have been achieved. It should also be appreciated thatvarious modifications, adaptations and alternative embodiments thereofmay be made within the scope and spirit of the present invention. Theinvention is further defined by the following claims.

What is claimed is:
 1. An aircraft control system for a user of asimulated aircraft through a desired direction of flight, comprising: avideo device for presenting the user with a view of a simulatedenvironment; modeling means responsive to the desired direction offlight for determining position and orientation of the simulatedaircraft; wherein the modeling means analyzes which control surfaceadjustments are needed to the simulated aircraft to fly along thedesired direction of flight and modifies a simulated aircraft state toalign the simulated aircraft with the desired direction of flight; and aplurality of simulated input devices for controlling the desireddirection of flight, wherein the user controls the direction of flightby moving a graphical element on the video device.
 2. The system ofclaim 1, further comprising showing movement of the graphical element onthe video device in response to joystick commands.
 3. The system ofclaim 1, wherein the graphical element is a circle.
 4. The system ofclaim 1, wherein the graphical element is a cross-hairs.
 5. The systemof claim 1, wherein the graphical element moves in response to the usermoving a mouse.
 6. The system of claim 1, wherein in response to themovement of the graphical element on the video device, parameters of thesimulated aircraft, including its ailerons, elevator and rudder arechanged so as to bring a current direction of flight of the simulatedaircraft aligned with the desired direction of flight.
 7. The system ofclaim 1, further providing a camera view of the simulated aircraft suchthat the desired direction of flight is in a center of the camera view.8. The system of claim 1, wherein the system provides, as its outputs,an aileron control value, an elevator control value, and a ruddercontrol value, which correspond to physical parameters of the simulatedaircraft, in a range [−1, 1], which represents aileron control axis. 9.The system of claim 8, wherein coefficients used to calculate theaileron control value, the elevator control value, and the ruddercontrol value are constants.
 10. The system of claim 8, whereincoefficients used to calculate the aileron control value, the elevatorcontrol value, and the rudder control value depend on differencesbetween a desired orientation and a current orientation.
 11. The systemof claim 8, wherein coefficients used to calculate the aileron controlvalue, the elevator control value, and the rudder control value dependon differences between current values and previous values.
 12. Thesystem of claim 8, wherein coefficients used to calculate the aileroncontrol value, the elevator control value, and the rudder control valueare calculated based on a heuristic algorithm.
 13. The system of claim8, wherein the aileron control value, the elevator control value, andthe rudder control value are calculated based on a full aerodynamicmodel of the simulated aircraft.
 14. The system of claim 1, wherein thesystem receives, as its inputs, current aircraft linear speed, currentaircraft linear acceleration, current aircraft angular speed, currentaircraft angular acceleration, current aircraft orientation, and thedesired direction of flight.
 15. The system of claim 14, wherein theaircraft orientation is represented by any of (a) Euler angles,including yaw, pitch, roll, (b) quaternion, and (c) a 3×3 matrix. 16.The system of claim 1, wherein the graphical element represents anabsolute desired direction of flight.
 17. The system of claim 1, whereinthe graphical element represents a difference from a current directionof flight.
 18. The system of claim 1, wherein a server verifies thatflight parameters transmitted by the system correspond to modeledparameters of a real aircraft.
 19. The system of claim 1, wherein thesystem displays the simulated aircraft from a third person perspective.20. The system of claim 1, wherein the system displays a perspectivefrom inside the simulated aircraft.
 21. The system of claim 1, whereinthe system displays a perspective from an arbitrary position around thesimulated aircraft.
 22. In a system for simulating an aircraft, thesystem having a processor, input devices, and a video display fordisplaying a simulated environment, a method of controlling a simulatedaircraft through indicating a desired direction of flight comprising thesteps of: (a) receiving signals from one of the input devices, thesignals indicative of a change of the desired direction of flightindicated by a user on a video display by controlling a graphicalelement on the video display; (b) calculating in the processor whichchanges to the simulated aircraft and its control surfaces should bedone to align the simulated aircraft with the desired direction offlight; (c) applying the changes to the simulated aircraft and itscontrol surfaces; (d) calculating new position and orientation of thesimulated aircraft after applying the changes; (e) simultaneouslydisplaying on the video display a view of the simulated environment andthe simulated aircraft; and (f) repeating steps (a)-(e).
 23. An aircraftgame system, comprising: a server hosting game logic; the serverreceiving data from a plurality of users, wherein some of the usersutilize (i) a video for presenting a user with a view of a simulatedenvironment; (ii) modeling means responsive to the desired direction offlight for determining position and orientation of a simulated aircraft;(iii) wherein the modeling means analyzes which control surfaceadjustments are needed to make the simulated aircraft fly along thedesired direction of flight and modifies a simulated aircraft state toalign the aircraft with the desired direction of flight; and (iv) aplurality of simulated input devices for controlling the desireddirection of flight, and wherein other users utilize a joystick fordirectly controlling simulated aircraft control surfaces by moving agraphical element on the video device, and aircraft parameters to theserver based on the joystick operation.